[INFO] cloning repository https://github.com/HarshsDev/async-ssh
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/HarshsDev/async-ssh" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHarshsDev%2Fasync-ssh", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHarshsDev%2Fasync-ssh'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c28eafc01c92034831ff71fb7877ac1852a8936d
[INFO] fixing HarshsDev/async-ssh against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=start=2015 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHarshsDev%2Fasync-ssh" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/HarshsDev/async-ssh
[INFO] finished tweaking git repo https://github.com/HarshsDev/async-ssh
[INFO] tweaked toml for git repo https://github.com/HarshsDev/async-ssh written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/HarshsDev/async-ssh on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/HarshsDev/async-ssh already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tokio-core v0.1.18
[INFO] [stderr]   Downloaded scoped-tls v0.1.2
[INFO] [stderr]   Downloaded yasna v0.4.0
[INFO] [stderr]   Downloaded thrussh-libsodium v0.4.0
[INFO] [stderr]   Downloaded thrussh-keys v0.23.2
[INFO] [stderr]   Downloaded password-hash v0.2.3
[INFO] [stderr]   Downloaded cryptovec v0.7.1
[INFO] [stderr]   Downloaded bcrypt-pbkdf v0.10.0
[INFO] [stderr]   Downloaded ssh-libsodium v0.4.0
[INFO] [stderr]   Downloaded thrussh v0.40.4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 48c4b36258e8beef6a5679f60974c873b6df7e0b09fd63934b22021fe4eedb36
[INFO] running `Command { std: "docker" "start" "48c4b36258e8beef6a5679f60974c873b6df7e0b09fd63934b22021fe4eedb36", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "48c4b36258e8beef6a5679f60974c873b6df7e0b09fd63934b22021fe4eedb36" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "48c4b36258e8beef6a5679f60974c873b6df7e0b09fd63934b22021fe4eedb36", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "48c4b36258e8beef6a5679f60974c873b6df7e0b09fd63934b22021fe4eedb36" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=start=2015", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.105
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]     Checking futures v0.1.31
[INFO] [stderr]    Compiling memoffset v0.5.6
[INFO] [stderr]    Compiling find-msvc-tools v0.1.8
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking net2 v0.2.39
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]     Checking lock_api v0.3.4
[INFO] [stderr]    Compiling parking_lot_core v0.6.3
[INFO] [stderr]    Compiling parking_lot v0.9.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.2
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking futures-sink v0.3.31
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking cipher v0.3.0
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking bytes v0.4.12
[INFO] [stderr]     Checking digest v0.9.0
[INFO] [stderr]    Compiling cc v1.2.53
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]    Compiling winapi v0.3.9
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking mio v0.6.23
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking crypto-mac v0.11.1
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]     Checking socket2 v0.6.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]     Checking base64ct v1.8.3
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]     Checking sha2 v0.9.9
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking crossbeam-queue v0.2.3
[INFO] [stderr]     Checking blowfish v0.9.1
[INFO] [stderr]     Checking password-hash v0.2.3
[INFO] [stderr]     Checking hmac v0.11.0
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking pbkdf2 v0.12.2
[INFO] [stderr]     Checking ctr v0.8.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking dirs-sys v0.3.7
[INFO] [stderr]     Checking simd-adler32 v0.3.8
[INFO] [stderr]     Checking block-modes v0.8.1
[INFO] [stderr]    Compiling quote v1.0.43
[INFO] [stderr]     Checking aes v0.7.5
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking bcrypt-pbkdf v0.10.0
[INFO] [stderr]     Checking cryptovec v0.7.1
[INFO] [stderr]     Checking mio-uds v0.6.8
[INFO] [stderr]     Checking dirs v3.0.2
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]     Checking crossbeam-deque v0.7.4
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking md5 v0.7.0
[INFO] [stderr]     Checking data-encoding v2.10.0
[INFO] [stderr]     Checking pbkdf2 v0.8.0
[INFO] [stderr]     Checking scoped-tls v0.1.2
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]    Compiling libsodium-sys v0.2.7 (/opt/rustwide/workdir/libsodium-sys-local)
[INFO] [stderr]     Checking flate2 v1.1.8
[INFO] [stderr]     Checking tokio-executor v0.1.10
[INFO] [stderr]     Checking tokio-io v0.1.13
[INFO] [stderr]     Checking tokio-sync v0.1.8
[INFO] [stderr]     Checking tokio-threadpool v0.1.18
[INFO] [stderr]     Checking tokio-current-thread v0.1.7
[INFO] [stderr]     Checking tokio-timer v0.2.13
[INFO] [stderr] warning: libsodium-sys@0.2.7: DEBUG: SODIUM_LIB_DIR present: false
[INFO] [stderr] warning: libsodium-sys@0.2.7: DEBUG: SODIUM_USE_PKG_CONFIG present: false
[INFO] [stderr] warning: libsodium-sys@0.2.7: DEBUG: use-pkg-config feature: true
[INFO] [stderr]     Checking tokio-codec v0.1.2
[INFO] [stderr]     Checking thrussh-libsodium v0.4.0
[INFO] [stderr]     Checking ssh-libsodium v0.4.0
[INFO] [stderr]     Checking tokio-fs v0.1.7
[INFO] [stderr]     Checking tokio-reactor v0.1.12
[INFO] [stderr]     Checking tokio-uds v0.2.7
[INFO] [stderr]     Checking tokio-udp v0.1.6
[INFO] [stderr]     Checking tokio-tcp v0.1.4
[INFO] [stderr]     Checking yasna v0.4.0
[INFO] [stderr]     Checking tokio v0.1.22
[INFO] [stderr]     Checking tokio-core v0.1.18
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking tokio v1.49.0
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking tokio-stream v0.1.18
[INFO] [stderr]     Checking thrussh-keys v0.23.2
[INFO] [stderr]     Checking thrussh v0.40.4
[INFO] [stderr]     Checking async-ssh v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0255]: the name `Channel` is defined multiple times
[INFO] [stdout]    --> src/lib.rs:247:1
[INFO] [stdout]     |
[INFO] [stdout]  13 | use thrussh::client::Channel;
[INFO] [stdout]     |     ------------------------ previous import of the type `Channel` here
[INFO] [stdout] ...
[INFO] [stdout] 247 | pub struct Channel<S: AsyncRead + AsyncWrite> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Channel` redefined here
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Channel` must be defined only once in the type namespace of this module
[INFO] [stdout] help: you can use `as` to change the binding name of the import
[INFO] [stdout]     |
[INFO] [stdout]  13 | use thrussh::client::Channel as OtherChannel;
[INFO] [stdout]     |                              +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0254]: the name `futures` is defined multiple times
[INFO] [stdout]   --> src/lib.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout]  1 | extern crate futures;
[INFO] [stdout]    | --------------------- previous import of the extern crate `futures` here
[INFO] [stdout] ...
[INFO] [stdout] 14 | use tokio::task::futures;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^ `futures` reimported here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `futures` must be defined only once in the type namespace of this module
[INFO] [stdout] help: you can use `as` to change the binding name of the import
[INFO] [stdout]    |
[INFO] [stdout] 14 | use tokio::task::futures as other_futures;
[INFO] [stdout]    |                          ++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `std::sync::arc`
[INFO] [stdout]   --> src/lib.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         use std::sync::arc;
[INFO] [stdout]    |             ^^^^^^^^^^^---
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        no `arc` in `sync`
[INFO] [stdout]    |
[INFO] [stdout] help: a similar name exists in the module
[INFO] [stdout]    |
[INFO] [stdout] 70 -         use std::sync::arc;
[INFO] [stdout] 70 +         use std::sync::Arc;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0255]: the name `Channel` is defined multiple times
[INFO] [stdout]    --> src/lib.rs:247:1
[INFO] [stdout]     |
[INFO] [stdout]  13 | use thrussh::client::Channel;
[INFO] [stdout]     |     ------------------------ previous import of the type `Channel` here
[INFO] [stdout] ...
[INFO] [stdout] 247 | pub struct Channel<S: AsyncRead + AsyncWrite> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Channel` redefined here
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Channel` must be defined only once in the type namespace of this module
[INFO] [stdout] help: you can use `as` to change the binding name of the import
[INFO] [stdout]     |
[INFO] [stdout]  13 | use thrussh::client::Channel as OtherChannel;
[INFO] [stdout]     |                              +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0254]: the name `futures` is defined multiple times
[INFO] [stdout]   --> src/lib.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout]  1 | extern crate futures;
[INFO] [stdout]    | --------------------- previous import of the extern crate `futures` here
[INFO] [stdout] ...
[INFO] [stdout] 14 | use tokio::task::futures;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^ `futures` reimported here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `futures` must be defined only once in the type namespace of this module
[INFO] [stdout] help: you can use `as` to change the binding name of the import
[INFO] [stdout]    |
[INFO] [stdout] 14 | use tokio::task::futures as other_futures;
[INFO] [stdout]    |                          ++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0405]: cannot find trait `Tcp` in crate `thrussh`
[INFO] [stdout]   --> src/lib.rs:50:43
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl<S: AsyncRead + AsyncWrite + thrussh::Tcp> Future for SharableConnection<S> {
[INFO] [stdout]    |                                           ^^^ not found in `thrussh`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `std::sync::arc`
[INFO] [stdout]   --> src/lib.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         use std::sync::arc;
[INFO] [stdout]    |             ^^^^^^^^^^^---
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        no `arc` in `sync`
[INFO] [stdout]    |
[INFO] [stdout] help: a similar name exists in the module
[INFO] [stdout]    |
[INFO] [stdout] 70 -         use std::sync::arc;
[INFO] [stdout] 70 +         use std::sync::Arc;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `SessionStateRef` in this scope
[INFO] [stdout]   --> src/lib.rs:65:45
[INFO] [stdout]    |
[INFO] [stdout] 65 |     connection: thrussh::client::Session<S, SessionStateRef>,
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct NewSession<S: AsyncRead + AsyncWrite, SessionStateRef> {
[INFO] [stdout]    |                                                +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected value, found struct `self::NewSessionFuture`
[INFO] [stdout]   --> src/lib.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub struct NewSessionFuture<S: AsyncRead + AsyncWrite> {}
[INFO] [stdout]    | --------------------------------------------------------- `self::NewSessionFuture` defined here
[INFO] [stdout] ...
[INFO] [stdout] 84 |         self::NewSessionFuture
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^ help: use struct literal syntax instead: `self::NewSessionFuture {}`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `SessionStateRef` in this scope
[INFO] [stdout]   --> src/lib.rs:89:45
[INFO] [stdout]    |
[INFO] [stdout] 89 |     connection: thrussh::client::Session<S, SessionStateRef>,
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct Session<S: AsyncRead + AsyncWrite, SessionStateRef> {
[INFO] [stdout]    |                                             +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected value, found struct `self::SessionFuture`
[INFO] [stdout]    --> src/lib.rs:98:9
[INFO] [stdout]     |
[INFO] [stdout]  98 |         self::SessionFuture
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^ help: use struct literal syntax instead: `self::SessionFuture {}`
[INFO] [stdout] ...
[INFO] [stdout] 102 | pub struct SessionFuture<S: AsyncRead + AsyncWrite> {}
[INFO] [stdout]     | ------------------------------------------------------ `self::SessionFuture` defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected value, found crate `channel`
[INFO] [stdout]    --> src/lib.rs:148:23
[INFO] [stdout]     |
[INFO] [stdout] 148 |             .get_mut(&channel)
[INFO] [stdout]     |                       ^^^^^^^ not a value
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these functions instead
[INFO] [stdout]     |
[INFO] [stdout]   6 + use crate::channel::mpsc::channel;
[INFO] [stdout]     |
[INFO] [stdout]   6 + use crate::channel::oneshot::channel;
[INFO] [stdout]     |
[INFO] [stdout]   6 + use std::sync::mpmc::channel;
[INFO] [stdout]     |
[INFO] [stdout]   6 + use std::sync::mpsc::channel;
[INFO] [stdout]     |
[INFO] [stdout]     = and 5 other candidates
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `SessionStateRef` in this scope
[INFO] [stdout]    --> src/lib.rs:248:14
[INFO] [stdout]     |
[INFO] [stdout] 248 |     session: SessionStateRef,
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Task` in module `futures::task`
[INFO] [stdout]    --> src/lib.rs:256:35
[INFO] [stdout]     |
[INFO] [stdout] 256 |     notify: Option<futures::task::Task>,
[INFO] [stdout]     |                                   ^^^^ not found in `futures::task`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `current` in module `futures::task`
[INFO] [stdout]    --> src/lib.rs:279:48
[INFO] [stdout]     |
[INFO] [stdout] 279 |             state.notify = Some(futures::task::current());
[INFO] [stdout]     |                                                ^^^^^^^ not found in `futures::task`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout]   6 + use std::thread::current;
[INFO] [stdout]     |
[INFO] [stdout] help: if you import `current`, refer to it directly
[INFO] [stdout]     |
[INFO] [stdout] 279 -             state.notify = Some(futures::task::current());
[INFO] [stdout] 279 +             state.notify = Some(current());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Poll` in this scope
[INFO] [stdout]    --> src/lib.rs:298:31
[INFO] [stdout]     |
[INFO] [stdout] 298 |     fn shutdown(&mut self) -> Poll<(), std::io::Error> {}
[INFO] [stdout]     |                               ^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]     |
[INFO] [stdout]   6 + use std::task::Poll;
[INFO] [stdout]     |
[INFO] [stdout]   6 + use futures::task::Poll;
[INFO] [stdout]     |
[INFO] [stdout]   6 + use mio::Poll;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Error`
[INFO] [stdout]  --> src/lib.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::fmt::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str`
[INFO] [stdout]   --> src/lib.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::str;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thrussh::client::Channel`
[INFO] [stdout]   --> src/lib.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use thrussh::client::Channel;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::task::futures`
[INFO] [stdout]   --> src/lib.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use tokio::task::futures;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: struct takes 0 generic arguments but 2 generic arguments were supplied
[INFO] [stdout]   --> src/lib.rs:35:25
[INFO] [stdout]    |
[INFO] [stdout] 35 |     c: thrussh::client::Session<S, Ref>,
[INFO] [stdout]    |                         ^^^^^^^-------- help: remove the unnecessary generics
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         expected 0 generic arguments
[INFO] [stdout]    |
[INFO] [stdout] note: struct defined here, with 0 generic parameters
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thrussh-0.40.4/src/client/mod.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct Session {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: struct takes 0 generic arguments but 2 generic arguments were supplied
[INFO] [stdout]   --> src/lib.rs:65:34
[INFO] [stdout]    |
[INFO] [stdout] 65 |     connection: thrussh::client::Session<S, SessionStateRef>,
[INFO] [stdout]    |                                  ^^^^^^^-------------------- help: remove the unnecessary generics
[INFO] [stdout]    |                                  |
[INFO] [stdout]    |                                  expected 0 generic arguments
[INFO] [stdout]    |
[INFO] [stdout] note: struct defined here, with 0 generic parameters
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thrussh-0.40.4/src/client/mod.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct Session {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: struct takes 0 generic arguments but 2 generic arguments were supplied
[INFO] [stdout]   --> src/lib.rs:89:34
[INFO] [stdout]    |
[INFO] [stdout] 89 |     connection: thrussh::client::Session<S, SessionStateRef>,
[INFO] [stdout]    |                                  ^^^^^^^-------------------- help: remove the unnecessary generics
[INFO] [stdout]    |                                  |
[INFO] [stdout]    |                                  expected 0 generic arguments
[INFO] [stdout]    |
[INFO] [stdout] note: struct defined here, with 0 generic parameters
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thrussh-0.40.4/src/client/mod.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct Session {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: enum takes 0 generic arguments but 1 generic argument was supplied
[INFO] [stdout]    --> src/lib.rs:115:46
[INFO] [stdout]     |
[INFO] [stdout] 115 |     pub(crate) errored_with: Option<thrussh::Error<()>>,
[INFO] [stdout]     |                                              ^^^^^---- help: remove the unnecessary generics
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              expected 0 generic arguments
[INFO] [stdout]     |
[INFO] [stdout] note: enum defined here, with 0 generic parameters
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thrussh-0.40.4/src/lib.rs:304:10
[INFO] [stdout]     |
[INFO] [stdout] 304 | pub enum Error {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> src/lib.rs:69:34
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub fn new(stream: S) -> Box<Future<Item = NewSession<S>, Error = ()>> {
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub fn new(stream: S) -> Box<dyn Future<Item = NewSession<S>, Error = ()>> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Channel`
[INFO] [stdout]    --> src/lib.rs:260:15
[INFO] [stdout]     |
[INFO] [stdout] 260 | impl Read for Channel {
[INFO] [stdout]     |               ^^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `S`
[INFO] [stdout]    --> src/lib.rs:247:12
[INFO] [stdout]     |
[INFO] [stdout] 247 | pub struct Channel<S: AsyncRead + AsyncWrite> {
[INFO] [stdout]     |            ^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 260 | impl Read for Channel<S> {
[INFO] [stdout]     |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Channel`
[INFO] [stdout]    --> src/lib.rs:296:20
[INFO] [stdout]     |
[INFO] [stdout] 296 | impl AsyncRead for Channel {}
[INFO] [stdout]     |                    ^^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `S`
[INFO] [stdout]    --> src/lib.rs:247:12
[INFO] [stdout]     |
[INFO] [stdout] 247 | pub struct Channel<S: AsyncRead + AsyncWrite> {
[INFO] [stdout]     |            ^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 296 | impl AsyncRead for Channel<S> {}
[INFO] [stdout]     |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Channel`
[INFO] [stdout]    --> src/lib.rs:287:16
[INFO] [stdout]     |
[INFO] [stdout] 287 | impl Write for Channel {
[INFO] [stdout]     |                ^^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `S`
[INFO] [stdout]    --> src/lib.rs:247:12
[INFO] [stdout]     |
[INFO] [stdout] 247 | pub struct Channel<S: AsyncRead + AsyncWrite> {
[INFO] [stdout]     |            ^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 287 | impl Write for Channel<S> {
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Channel`
[INFO] [stdout]    --> src/lib.rs:297:21
[INFO] [stdout]     |
[INFO] [stdout] 297 | impl AsyncWrite for Channel {
[INFO] [stdout]     |                     ^^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `S`
[INFO] [stdout]    --> src/lib.rs:247:12
[INFO] [stdout]     |
[INFO] [stdout] 247 | pub struct Channel<S: AsyncRead + AsyncWrite> {
[INFO] [stdout]     |            ^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 297 | impl AsyncWrite for Channel<S> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0392]: type parameter `S` is never used
[INFO] [stdout]   --> src/lib.rs:75:29
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub struct NewSessionFuture<S: AsyncRead + AsyncWrite> {}
[INFO] [stdout]    |                             ^ unused type parameter
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing `S`, referring to it in a field, or using a marker such as `PhantomData`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0392]: type parameter `S` is never used
[INFO] [stdout]    --> src/lib.rs:102:26
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub struct SessionFuture<S: AsyncRead + AsyncWrite> {}
[INFO] [stdout]     |                          ^ unused type parameter
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing `S`, referring to it in a field, or using a marker such as `PhantomData`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `(): From<thrussh::Error>` is not satisfied
[INFO] [stdout]     --> src/lib.rs:129:18
[INFO] [stdout]      |
[INFO] [stdout]  129 |     type Error = ();
[INFO] [stdout]      |                  ^^ the trait `From<thrussh::Error>` is not implemented for `()`
[INFO] [stdout]      |
[INFO] [stdout]      = help: the following other types implement trait `From<T>`:
[INFO] [stdout]                `(T, T)` implements `From<[T; 2]>`
[INFO] [stdout]                `(T, T, T)` implements `From<[T; 3]>`
[INFO] [stdout]                `(T, T, T, T)` implements `From<[T; 4]>`
[INFO] [stdout]                `(T, T, T, T, T)` implements `From<[T; 5]>`
[INFO] [stdout]                `(T, T, T, T, T, T)` implements `From<[T; 6]>`
[INFO] [stdout]                `(T, T, T, T, T, T, T)` implements `From<[T; 7]>`
[INFO] [stdout]                `(T, T, T, T, T, T, T, T)` implements `From<[T; 8]>`
[INFO] [stdout]                `(T, T, T, T, T, T, T, T, T)` implements `From<[T; 9]>`
[INFO] [stdout]              and 4 others
[INFO] [stdout] note: required by a bound in `thrussh::client::Handler::Error`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thrussh-0.40.4/src/client/mod.rs:1225:17
[INFO] [stdout]      |
[INFO] [stdout] 1225 |     type Error: From<crate::Error> + Send;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^ required by this bound in `Handler::Error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Inner>>` cannot be sent between threads safely
[INFO] [stdout]     --> src/lib.rs:134:10
[INFO] [stdout]      |
[INFO] [stdout]  134 |     ) -> impl Future<Output = Result<(Self, bool), Self::Error>> {
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |          |
[INFO] [stdout]      |          `Rc<RefCell<Inner>>` cannot be sent between threads safely
[INFO] [stdout]      |          within this `impl futures::Future<Output = Result<(Ref, bool), <Ref as thrussh::client::Handler>::Error>>`
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `impl futures::Future<Output = Result<(Ref, bool), <Ref as thrussh::client::Handler>::Error>>`, the trait `std::marker::Send` is not implemented for `Rc<RefCell<Inner>>`
[INFO] [stdout] note: required because it appears within the type `Ref`
[INFO] [stdout]     --> src/lib.rs:119:19
[INFO] [stdout]      |
[INFO] [stdout]  119 | pub(crate) struct Ref(Rc<RefCell<Inner>>);
[INFO] [stdout]      |                   ^^^
[INFO] [stdout]      = note: required because it appears within the type `(Ref, bool)`
[INFO] [stdout] note: required because it appears within the type `Result<(Ref, bool), ()>`
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:557:9
[INFO] [stdout] note: required because it appears within the type `Option<Result<(Ref, bool), ()>>`
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:597:9
[INFO] [stdout] note: required because it appears within the type `futures::future::Ready<Result<(Ref, bool), ()>>`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/ready.rs:9:12
[INFO] [stdout]      |
[INFO] [stdout]    9 | pub struct Ready<T>(Option<T>);
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] note: required because it appears within the type `impl futures::Future<Output = Result<(Ref, bool), <Ref as thrussh::client::Handler>::Error>>`
[INFO] [stdout]     --> src/lib.rs:134:10
[INFO] [stdout]      |
[INFO] [stdout]  134 |     ) -> impl Future<Output = Result<(Self, bool), Self::Error>> {
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `thrussh::client::Handler::check_server_key::{anon_assoc#0}`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thrussh-0.40.4/src/client/mod.rs:1249:68
[INFO] [stdout]      |
[INFO] [stdout] 1249 |     ) -> impl Future<Output = Result<(Self, bool), Self::Error>> + Send {
[INFO] [stdout]      |                                                                    ^^^^ required by this bound in `Handler::check_server_key::{anon_assoc#0}`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0050]: method `data` has 5 parameters but the declaration in trait `thrussh::client::Handler::data` has 4
[INFO] [stdout]    --> src/lib.rs:160:9
[INFO] [stdout]     |
[INFO] [stdout] 160 | /         self,
[INFO] [stdout] 161 | |         channel: thrussh::ChannelId,
[INFO] [stdout] 162 | |         ext: Option<u32>,
[INFO] [stdout] 163 | |         data: &[u8],
[INFO] [stdout] 164 | |         session: thrussh::client::Session,
[INFO] [stdout]     | |_________________________________________^ expected 4 parameters, found 5
[INFO] [stdout]     |
[INFO] [stdout]     = note: `data` from trait: `fn(Self, ChannelId, &[u8], thrussh::client::Session) -> impl futures::Future<Output = Result<(Self, thrussh::client::Session), <Self as thrussh::client::Handler>::Error>> + std::marker::Send`
[INFO] [stdout] help: remove the extra parameter to match the trait
[INFO] [stdout]     |
[INFO] [stdout] 163 -         data: &[u8],
[INFO] [stdout] 164 -         session: thrussh::client::Session,
[INFO] [stdout] 163 +         data: &[u8],
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0405]: cannot find trait `Tcp` in crate `thrussh`
[INFO] [stdout]   --> src/lib.rs:50:43
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl<S: AsyncRead + AsyncWrite + thrussh::Tcp> Future for SharableConnection<S> {
[INFO] [stdout]    |                                           ^^^ not found in `thrussh`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `SessionStateRef` in this scope
[INFO] [stdout]   --> src/lib.rs:65:45
[INFO] [stdout]    |
[INFO] [stdout] 65 |     connection: thrussh::client::Session<S, SessionStateRef>,
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct NewSession<S: AsyncRead + AsyncWrite, SessionStateRef> {
[INFO] [stdout]    |                                                +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected value, found struct `self::NewSessionFuture`
[INFO] [stdout]   --> src/lib.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub struct NewSessionFuture<S: AsyncRead + AsyncWrite> {}
[INFO] [stdout]    | --------------------------------------------------------- `self::NewSessionFuture` defined here
[INFO] [stdout] ...
[INFO] [stdout] 84 |         self::NewSessionFuture
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^ help: use struct literal syntax instead: `self::NewSessionFuture {}`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `SessionStateRef` in this scope
[INFO] [stdout]   --> src/lib.rs:89:45
[INFO] [stdout]    |
[INFO] [stdout] 89 |     connection: thrussh::client::Session<S, SessionStateRef>,
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct Session<S: AsyncRead + AsyncWrite, SessionStateRef> {
[INFO] [stdout]    |                                             +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected value, found struct `self::SessionFuture`
[INFO] [stdout]    --> src/lib.rs:98:9
[INFO] [stdout]     |
[INFO] [stdout]  98 |         self::SessionFuture
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^ help: use struct literal syntax instead: `self::SessionFuture {}`
[INFO] [stdout] ...
[INFO] [stdout] 102 | pub struct SessionFuture<S: AsyncRead + AsyncWrite> {}
[INFO] [stdout]     | ------------------------------------------------------ `self::SessionFuture` defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected value, found crate `channel`
[INFO] [stdout]    --> src/lib.rs:148:23
[INFO] [stdout]     |
[INFO] [stdout] 148 |             .get_mut(&channel)
[INFO] [stdout]     |                       ^^^^^^^ not a value
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these functions instead
[INFO] [stdout]     |
[INFO] [stdout]   6 + use crate::channel::mpsc::channel;
[INFO] [stdout]     |
[INFO] [stdout]   6 + use crate::channel::oneshot::channel;
[INFO] [stdout]     |
[INFO] [stdout]   6 + use std::sync::mpmc::channel;
[INFO] [stdout]     |
[INFO] [stdout]   6 + use std::sync::mpsc::channel;
[INFO] [stdout]     |
[INFO] [stdout]     = and 5 other candidates
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:186:9
[INFO] [stdout]     |
[INFO] [stdout] 186 |         mut session: thrussh::client::Session,
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0505]: cannot move out of `self` because it is borrowed
[INFO] [stdout]    --> src/lib.rs:198:36
[INFO] [stdout]     |
[INFO] [stdout] 184 |         self,
[INFO] [stdout]     |         ---- binding `self` declared here
[INFO] [stdout] ...
[INFO] [stdout] 188 |         let mut state = self.0.borrow_mut();
[INFO] [stdout]     |                         ------ borrow of `self.0` occurs here
[INFO] [stdout] ...
[INFO] [stdout] 198 |         futures::future::ready(Ok((self, session)))
[INFO] [stdout]     |                                    ^^^^ move out of `self` occurs here
[INFO] [stdout] 199 |     }
[INFO] [stdout]     |     - borrow might be used here, when `state` is dropped and runs the destructor for type `RefMut<'_, Inner>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `SessionStateRef` in this scope
[INFO] [stdout]    --> src/lib.rs:248:14
[INFO] [stdout]     |
[INFO] [stdout] 248 |     session: SessionStateRef,
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Task` in module `futures::task`
[INFO] [stdout]    --> src/lib.rs:256:35
[INFO] [stdout]     |
[INFO] [stdout] 256 |     notify: Option<futures::task::Task>,
[INFO] [stdout]     |                                   ^^^^ not found in `futures::task`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `current` in module `futures::task`
[INFO] [stdout]    --> src/lib.rs:279:48
[INFO] [stdout]     |
[INFO] [stdout] 279 |             state.notify = Some(futures::task::current());
[INFO] [stdout]     |                                                ^^^^^^^ not found in `futures::task`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout]   6 + use std::thread::current;
[INFO] [stdout]     |
[INFO] [stdout] help: if you import `current`, refer to it directly
[INFO] [stdout]     |
[INFO] [stdout] 279 -             state.notify = Some(futures::task::current());
[INFO] [stdout] 279 +             state.notify = Some(current());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Poll` in this scope
[INFO] [stdout]    --> src/lib.rs:298:31
[INFO] [stdout]     |
[INFO] [stdout] 298 |     fn shutdown(&mut self) -> Poll<(), std::io::Error> {}
[INFO] [stdout]     |                               ^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]     |
[INFO] [stdout]   6 + use std::task::Poll;
[INFO] [stdout]     |
[INFO] [stdout]   6 + use futures::task::Poll;
[INFO] [stdout]     |
[INFO] [stdout]   6 + use mio::Poll;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Inner>>` cannot be sent between threads safely
[INFO] [stdout]     --> src/lib.rs:128:35
[INFO] [stdout]      |
[INFO] [stdout]  128 | impl thrussh::client::Handler for Ref {
[INFO] [stdout]      |                                   ^^^ `Rc<RefCell<Inner>>` cannot be sent between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `Ref`, the trait `std::marker::Send` is not implemented for `Rc<RefCell<Inner>>`
[INFO] [stdout] note: required because it appears within the type `Ref`
[INFO] [stdout]     --> src/lib.rs:119:19
[INFO] [stdout]      |
[INFO] [stdout]  119 | pub(crate) struct Ref(Rc<RefCell<Inner>>);
[INFO] [stdout]      |                   ^^^
[INFO] [stdout] note: required by a bound in `thrussh::client::Handler`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thrussh-0.40.4/src/client/mod.rs:1224:28
[INFO] [stdout]      |
[INFO] [stdout] 1224 | pub trait Handler: Sized + Send {
[INFO] [stdout]      |                            ^^^^ required by this bound in `Handler`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Error`
[INFO] [stdout]  --> src/lib.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::fmt::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str`
[INFO] [stdout]   --> src/lib.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::str;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thrussh::client::Channel`
[INFO] [stdout]   --> src/lib.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use thrussh::client::Channel;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::task::futures`
[INFO] [stdout]   --> src/lib.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use tokio::task::futures;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0050, E0107, E0254, E0255, E0277, E0392, E0405, E0423, E0425...
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0050`.
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: struct takes 0 generic arguments but 2 generic arguments were supplied
[INFO] [stdout]   --> src/lib.rs:35:25
[INFO] [stdout]    |
[INFO] [stdout] 35 |     c: thrussh::client::Session<S, Ref>,
[INFO] [stdout]    |                         ^^^^^^^-------- help: remove the unnecessary generics
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         expected 0 generic arguments
[INFO] [stdout]    |
[INFO] [stdout] note: struct defined here, with 0 generic parameters
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thrussh-0.40.4/src/client/mod.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct Session {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: struct takes 0 generic arguments but 2 generic arguments were supplied
[INFO] [stdout]   --> src/lib.rs:65:34
[INFO] [stdout]    |
[INFO] [stdout] 65 |     connection: thrussh::client::Session<S, SessionStateRef>,
[INFO] [stdout]    |                                  ^^^^^^^-------------------- help: remove the unnecessary generics
[INFO] [stdout]    |                                  |
[INFO] [stdout]    |                                  expected 0 generic arguments
[INFO] [stdout]    |
[INFO] [stdout] note: struct defined here, with 0 generic parameters
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thrussh-0.40.4/src/client/mod.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct Session {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: struct takes 0 generic arguments but 2 generic arguments were supplied
[INFO] [stdout]   --> src/lib.rs:89:34
[INFO] [stdout]    |
[INFO] [stdout] 89 |     connection: thrussh::client::Session<S, SessionStateRef>,
[INFO] [stdout]    |                                  ^^^^^^^-------------------- help: remove the unnecessary generics
[INFO] [stdout]    |                                  |
[INFO] [stdout]    |                                  expected 0 generic arguments
[INFO] [stdout]    |
[INFO] [stdout] note: struct defined here, with 0 generic parameters
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thrussh-0.40.4/src/client/mod.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct Session {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: enum takes 0 generic arguments but 1 generic argument was supplied
[INFO] [stdout]    --> src/lib.rs:115:46
[INFO] [stdout]     |
[INFO] [stdout] 115 |     pub(crate) errored_with: Option<thrussh::Error<()>>,
[INFO] [stdout]     |                                              ^^^^^---- help: remove the unnecessary generics
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              expected 0 generic arguments
[INFO] [stdout]     |
[INFO] [stdout] note: enum defined here, with 0 generic parameters
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thrussh-0.40.4/src/lib.rs:304:10
[INFO] [stdout]     |
[INFO] [stdout] 304 | pub enum Error {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `async-ssh` (lib) due to 29 previous errors; 5 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> src/lib.rs:69:34
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub fn new(stream: S) -> Box<Future<Item = NewSession<S>, Error = ()>> {
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub fn new(stream: S) -> Box<dyn Future<Item = NewSession<S>, Error = ()>> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Channel`
[INFO] [stdout]    --> src/lib.rs:260:15
[INFO] [stdout]     |
[INFO] [stdout] 260 | impl Read for Channel {
[INFO] [stdout]     |               ^^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `S`
[INFO] [stdout]    --> src/lib.rs:247:12
[INFO] [stdout]     |
[INFO] [stdout] 247 | pub struct Channel<S: AsyncRead + AsyncWrite> {
[INFO] [stdout]     |            ^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 260 | impl Read for Channel<S> {
[INFO] [stdout]     |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Channel`
[INFO] [stdout]    --> src/lib.rs:296:20
[INFO] [stdout]     |
[INFO] [stdout] 296 | impl AsyncRead for Channel {}
[INFO] [stdout]     |                    ^^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `S`
[INFO] [stdout]    --> src/lib.rs:247:12
[INFO] [stdout]     |
[INFO] [stdout] 247 | pub struct Channel<S: AsyncRead + AsyncWrite> {
[INFO] [stdout]     |            ^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 296 | impl AsyncRead for Channel<S> {}
[INFO] [stdout]     |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Channel`
[INFO] [stdout]    --> src/lib.rs:287:16
[INFO] [stdout]     |
[INFO] [stdout] 287 | impl Write for Channel {
[INFO] [stdout]     |                ^^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `S`
[INFO] [stdout]    --> src/lib.rs:247:12
[INFO] [stdout]     |
[INFO] [stdout] 247 | pub struct Channel<S: AsyncRead + AsyncWrite> {
[INFO] [stdout]     |            ^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 287 | impl Write for Channel<S> {
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Channel`
[INFO] [stdout]    --> src/lib.rs:297:21
[INFO] [stdout]     |
[INFO] [stdout] 297 | impl AsyncWrite for Channel {
[INFO] [stdout]     |                     ^^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `S`
[INFO] [stdout]    --> src/lib.rs:247:12
[INFO] [stdout]     |
[INFO] [stdout] 247 | pub struct Channel<S: AsyncRead + AsyncWrite> {
[INFO] [stdout]     |            ^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 297 | impl AsyncWrite for Channel<S> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0392]: type parameter `S` is never used
[INFO] [stdout]   --> src/lib.rs:75:29
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub struct NewSessionFuture<S: AsyncRead + AsyncWrite> {}
[INFO] [stdout]    |                             ^ unused type parameter
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing `S`, referring to it in a field, or using a marker such as `PhantomData`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0392]: type parameter `S` is never used
[INFO] [stdout]    --> src/lib.rs:102:26
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub struct SessionFuture<S: AsyncRead + AsyncWrite> {}
[INFO] [stdout]     |                          ^ unused type parameter
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing `S`, referring to it in a field, or using a marker such as `PhantomData`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `(): From<thrussh::Error>` is not satisfied
[INFO] [stdout]     --> src/lib.rs:129:18
[INFO] [stdout]      |
[INFO] [stdout]  129 |     type Error = ();
[INFO] [stdout]      |                  ^^ the trait `From<thrussh::Error>` is not implemented for `()`
[INFO] [stdout]      |
[INFO] [stdout]      = help: the following other types implement trait `From<T>`:
[INFO] [stdout]                `(T, T)` implements `From<[T; 2]>`
[INFO] [stdout]                `(T, T, T)` implements `From<[T; 3]>`
[INFO] [stdout]                `(T, T, T, T)` implements `From<[T; 4]>`
[INFO] [stdout]                `(T, T, T, T, T)` implements `From<[T; 5]>`
[INFO] [stdout]                `(T, T, T, T, T, T)` implements `From<[T; 6]>`
[INFO] [stdout]                `(T, T, T, T, T, T, T)` implements `From<[T; 7]>`
[INFO] [stdout]                `(T, T, T, T, T, T, T, T)` implements `From<[T; 8]>`
[INFO] [stdout]                `(T, T, T, T, T, T, T, T, T)` implements `From<[T; 9]>`
[INFO] [stdout]              and 4 others
[INFO] [stdout] note: required by a bound in `thrussh::client::Handler::Error`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thrussh-0.40.4/src/client/mod.rs:1225:17
[INFO] [stdout]      |
[INFO] [stdout] 1225 |     type Error: From<crate::Error> + Send;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^ required by this bound in `Handler::Error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Inner>>` cannot be sent between threads safely
[INFO] [stdout]     --> src/lib.rs:134:10
[INFO] [stdout]      |
[INFO] [stdout]  134 |     ) -> impl Future<Output = Result<(Self, bool), Self::Error>> {
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |          |
[INFO] [stdout]      |          `Rc<RefCell<Inner>>` cannot be sent between threads safely
[INFO] [stdout]      |          within this `impl futures::Future<Output = Result<(Ref, bool), <Ref as thrussh::client::Handler>::Error>>`
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `impl futures::Future<Output = Result<(Ref, bool), <Ref as thrussh::client::Handler>::Error>>`, the trait `std::marker::Send` is not implemented for `Rc<RefCell<Inner>>`
[INFO] [stdout] note: required because it appears within the type `Ref`
[INFO] [stdout]     --> src/lib.rs:119:19
[INFO] [stdout]      |
[INFO] [stdout]  119 | pub(crate) struct Ref(Rc<RefCell<Inner>>);
[INFO] [stdout]      |                   ^^^
[INFO] [stdout]      = note: required because it appears within the type `(Ref, bool)`
[INFO] [stdout] note: required because it appears within the type `Result<(Ref, bool), ()>`
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:557:9
[INFO] [stdout] note: required because it appears within the type `Option<Result<(Ref, bool), ()>>`
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:597:9
[INFO] [stdout] note: required because it appears within the type `futures::future::Ready<Result<(Ref, bool), ()>>`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/ready.rs:9:12
[INFO] [stdout]      |
[INFO] [stdout]    9 | pub struct Ready<T>(Option<T>);
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] note: required because it appears within the type `impl futures::Future<Output = Result<(Ref, bool), <Ref as thrussh::client::Handler>::Error>>`
[INFO] [stdout]     --> src/lib.rs:134:10
[INFO] [stdout]      |
[INFO] [stdout]  134 |     ) -> impl Future<Output = Result<(Self, bool), Self::Error>> {
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `thrussh::client::Handler::check_server_key::{anon_assoc#0}`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thrussh-0.40.4/src/client/mod.rs:1249:68
[INFO] [stdout]      |
[INFO] [stdout] 1249 |     ) -> impl Future<Output = Result<(Self, bool), Self::Error>> + Send {
[INFO] [stdout]      |                                                                    ^^^^ required by this bound in `Handler::check_server_key::{anon_assoc#0}`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0050]: method `data` has 5 parameters but the declaration in trait `thrussh::client::Handler::data` has 4
[INFO] [stdout]    --> src/lib.rs:160:9
[INFO] [stdout]     |
[INFO] [stdout] 160 | /         self,
[INFO] [stdout] 161 | |         channel: thrussh::ChannelId,
[INFO] [stdout] 162 | |         ext: Option<u32>,
[INFO] [stdout] 163 | |         data: &[u8],
[INFO] [stdout] 164 | |         session: thrussh::client::Session,
[INFO] [stdout]     | |_________________________________________^ expected 4 parameters, found 5
[INFO] [stdout]     |
[INFO] [stdout]     = note: `data` from trait: `fn(Self, ChannelId, &[u8], thrussh::client::Session) -> impl futures::Future<Output = Result<(Self, thrussh::client::Session), <Self as thrussh::client::Handler>::Error>> + std::marker::Send`
[INFO] [stdout] help: remove the extra parameter to match the trait
[INFO] [stdout]     |
[INFO] [stdout] 163 -         data: &[u8],
[INFO] [stdout] 164 -         session: thrussh::client::Session,
[INFO] [stdout] 163 +         data: &[u8],
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:186:9
[INFO] [stdout]     |
[INFO] [stdout] 186 |         mut session: thrussh::client::Session,
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0505]: cannot move out of `self` because it is borrowed
[INFO] [stdout]    --> src/lib.rs:198:36
[INFO] [stdout]     |
[INFO] [stdout] 184 |         self,
[INFO] [stdout]     |         ---- binding `self` declared here
[INFO] [stdout] ...
[INFO] [stdout] 188 |         let mut state = self.0.borrow_mut();
[INFO] [stdout]     |                         ------ borrow of `self.0` occurs here
[INFO] [stdout] ...
[INFO] [stdout] 198 |         futures::future::ready(Ok((self, session)))
[INFO] [stdout]     |                                    ^^^^ move out of `self` occurs here
[INFO] [stdout] 199 |     }
[INFO] [stdout]     |     - borrow might be used here, when `state` is dropped and runs the destructor for type `RefMut<'_, Inner>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Inner>>` cannot be sent between threads safely
[INFO] [stdout]     --> src/lib.rs:128:35
[INFO] [stdout]      |
[INFO] [stdout]  128 | impl thrussh::client::Handler for Ref {
[INFO] [stdout]      |                                   ^^^ `Rc<RefCell<Inner>>` cannot be sent between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `Ref`, the trait `std::marker::Send` is not implemented for `Rc<RefCell<Inner>>`
[INFO] [stdout] note: required because it appears within the type `Ref`
[INFO] [stdout]     --> src/lib.rs:119:19
[INFO] [stdout]      |
[INFO] [stdout]  119 | pub(crate) struct Ref(Rc<RefCell<Inner>>);
[INFO] [stdout]      |                   ^^^
[INFO] [stdout] note: required by a bound in `thrussh::client::Handler`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/thrussh-0.40.4/src/client/mod.rs:1224:28
[INFO] [stdout]      |
[INFO] [stdout] 1224 | pub trait Handler: Sized + Send {
[INFO] [stdout]      |                            ^^^^ required by this bound in `Handler`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0050, E0107, E0254, E0255, E0277, E0392, E0405, E0423, E0425...
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0050`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `async-ssh` (lib test) due to 29 previous errors; 5 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "48c4b36258e8beef6a5679f60974c873b6df7e0b09fd63934b22021fe4eedb36", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "48c4b36258e8beef6a5679f60974c873b6df7e0b09fd63934b22021fe4eedb36", kill_on_drop: false }`
[INFO] [stdout] 48c4b36258e8beef6a5679f60974c873b6df7e0b09fd63934b22021fe4eedb36
